home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat2 / standard / exec.z / exec
Encoding:
Text File  |  2002-10-03  |  27.3 KB  |  397 lines

  1.  
  2.  
  3.  
  4. eeeexxxxeeeecccc((((2222))))                                                                eeeexxxxeeeecccc((((2222))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      _eeee_xxxx_eeee_cccc: _eeee_xxxx_eeee_cccc_llll, _eeee_xxxx_eeee_cccc_vvvv, _eeee_xxxx_eeee_cccc_llll_eeee, _eeee_xxxx_eeee_cccc_vvvv_eeee, _eeee_xxxx_eeee_cccc_llll_pppp, _eeee_xxxx_eeee_cccc_vvvv_pppp - execute a file
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_uuuu_nnnn_iiii_ssss_tttt_dddd_...._hhhh_>>>>
  13.  
  14.      _iiii_nnnn_tttt _eeee_xxxx_eeee_cccc_llll _((((_cccc_oooo_nnnn_ssss_tttt _cccc_hhhh_aaaa_rrrr _****_pppp_aaaa_tttt_hhhh_,,,, _cccc_oooo_nnnn_ssss_tttt _cccc_hhhh_aaaa_rrrr _****_aaaa_rrrr_gggg_0000_,,,, _...._...._...._,,,, _cccc_oooo_nnnn_ssss_tttt _cccc_hhhh_aaaa_rrrr _****_aaaa_rrrr_gggg_nnnn_,,,,
  15.           _((((_cccc_hhhh_aaaa_rrrr _****_))))_0000_))))_;;;;
  16.  
  17.      _iiii_nnnn_tttt _eeee_xxxx_eeee_cccc_vvvv _((((_cccc_oooo_nnnn_ssss_tttt _cccc_hhhh_aaaa_rrrr _****_pppp_aaaa_tttt_hhhh_,,,, _cccc_hhhh_aaaa_rrrr _****_cccc_oooo_nnnn_ssss_tttt _****_aaaa_rrrr_gggg_vvvv_))))_;;;;
  18.  
  19.      _iiii_nnnn_tttt _eeee_xxxx_eeee_cccc_llll_eeee _((((_cccc_oooo_nnnn_ssss_tttt _cccc_hhhh_aaaa_rrrr _****_pppp_aaaa_tttt_hhhh_,,,, _cccc_oooo_nnnn_ssss_tttt _cccc_hhhh_aaaa_rrrr _****_aaaa_rrrr_gggg_0000_,,,, _...._...._...._,,,, _cccc_oooo_nnnn_ssss_tttt _cccc_hhhh_aaaa_rrrr _****_aaaa_rrrr_gggg_nnnn_,,,,
  20.           _((((_cccc_hhhh_aaaa_rrrr _****_))))_0000_,,,, _cccc_oooo_nnnn_ssss_tttt _cccc_hhhh_aaaa_rrrr _****_eeee_nnnn_vvvv_pppp_[[[[_]]]]_))))_;;;;
  21.  
  22.      _iiii_nnnn_tttt _eeee_xxxx_eeee_cccc_vvvv_eeee _((((_cccc_oooo_nnnn_ssss_tttt _cccc_hhhh_aaaa_rrrr _****_pppp_aaaa_tttt_hhhh_,,,, _cccc_hhhh_aaaa_rrrr _****_cccc_oooo_nnnn_ssss_tttt _****_aaaa_rrrr_gggg_vvvv_,,,, _cccc_hhhh_aaaa_rrrr _****_cccc_oooo_nnnn_ssss_tttt _****_eeee_nnnn_vvvv_pppp_))))_;;;;
  23.  
  24.      _iiii_nnnn_tttt _eeee_xxxx_eeee_cccc_llll_pppp _((((_cccc_oooo_nnnn_ssss_tttt _cccc_hhhh_aaaa_rrrr _****_ffff_iiii_llll_eeee_,,,, _cccc_oooo_nnnn_ssss_tttt _cccc_hhhh_aaaa_rrrr _****_aaaa_rrrr_gggg_0000_,,,, _...._...._...._,,,, _cccc_oooo_nnnn_ssss_tttt _cccc_hhhh_aaaa_rrrr _****_aaaa_rrrr_gggg_nnnn_,,,,
  25.           _((((_cccc_hhhh_aaaa_rrrr _****_))))_0000_))))_;;;;
  26.  
  27.      _iiii_nnnn_tttt _eeee_xxxx_eeee_cccc_vvvv_pppp _((((_cccc_oooo_nnnn_ssss_tttt _cccc_hhhh_aaaa_rrrr _****_ffff_iiii_llll_eeee_,,,, _cccc_hhhh_aaaa_rrrr _****_cccc_oooo_nnnn_ssss_tttt _****_aaaa_rrrr_gggg_vvvv_))))_;;;;
  28.  
  29. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  30.      _eeee_xxxx_eeee_cccc in all its forms overlays a new process image on an old process.
  31.      The new process image is constructed from an ordinary, executable file.
  32.      This file is either an executable object file, or a file of data for an
  33.      interpreter.  There can be no return from a successful _eeee_xxxx_eeee_cccc because the
  34.      calling process image is overlaid by the new process image.
  35.  
  36.      An interpreter file begins with a line of the form
  37.  
  38.           _####_!!!! _p_a_t_h_n_a_m_e [_a_r_g]
  39.  
  40.      where _p_a_t_h_n_a_m_e is the path of the interpreter, and _a_r_g is an optional
  41.      argument.  This line may be up to 256 characters long.  _a_r_g includes all
  42.      characters from the first non-space character after _p_a_t_h_n_a_m_e up to, but
  43.      not including, the newline.  Any tabs in _a_r_g are converted to spaces.
  44.      When an interpreter file is exec'd, the system execs the specified
  45.      interpreter.  The pathname specified in the interpreter file is passed as
  46.      _a_r_g_0 to the interpreter.  If _a_r_g was specified in the interpreter file,
  47.      it is passed as _a_r_g_1 to the interpreter.  The remaining arguments to the
  48.      interpreter are _a_r_g_0 through _a_r_g_n of the originally exec'd file.
  49.  
  50.      When a C program is executed, it is called as follows:
  51.  
  52.           _iiii_nnnn_tttt _mmmm_aaaa_iiii_nnnn _((((_iiii_nnnn_tttt _a_r_g_c_,,,, _cccc_hhhh_aaaa_rrrr _****_a_r_g_v_[[[[_]]]]_,,,, _cccc_hhhh_aaaa_rrrr _****_e_n_v_p_[[[[_]]]]_))))_;;;;
  53.  
  54.      where _a_r_g_c is the argument count, _a_r_g_v is an array of character pointers
  55.      to the arguments themselves, and _e_n_v_p is an array of character pointers
  56.      to the environment strings.  As indicated, _a_r_g_c is at least one, and the
  57.      first member of the array points to a string containing the name of the
  58.      file.
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. eeeexxxxeeeecccc((((2222))))                                                                eeeexxxxeeeecccc((((2222))))
  71.  
  72.  
  73.  
  74.      _p_a_t_h points to a path name that identifies the new process file.
  75.  
  76.      _f_i_l_e, which is only used with _eeee_xxxx_eeee_cccc_llll_pppp and _eeee_xxxx_eeee_cccc_vvvv_pppp, points to the new
  77.      process file.  If _f_i_l_e does not contain a slash character, the path
  78.      prefix for this file is obtained by a search of the directories passed in
  79.      the _PPPP_AAAA_TTTT_HHHH environment variable [see _eeee_nnnn_vvvv_iiii_rrrr_oooo_nnnn(5)].  The environment is
  80.      supplied typically by the shell [see _ssss_hhhh(1)].
  81.  
  82.      If the new process file is not an executable object file, _eeee_xxxx_eeee_cccc_llll_pppp and
  83.      _eeee_xxxx_eeee_cccc_vvvv_pppp use the contents of that file as standard input to _ssss_hhhh(1).
  84.      However, if the new process file is setuid or setgid, the input is passed
  85.      via /_d_e_v/_f_d/_N (see below for details).
  86.  
  87.      The arguments _a_r_g_0_,,,, ..._,,,, _a_r_g_n point to null-terminated character strings.
  88.      These strings constitute the argument list available to the new process
  89.      image.  Minimally, _a_r_g_0 must be present.  It will become the name of the
  90.      process, as displayed by the _pppp_ssss command.  Conventionally, _a_r_g_0 points to
  91.      a string that is the same as _p_a_t_h (or the last component of _p_a_t_h).  The
  92.      list of argument strings is terminated by a _((((_cccc_hhhh_aaaa_rrrr _****_))))_0000 argument.
  93.  
  94.      _a_r_g_v is an array of character pointers to null-terminated strings.  These
  95.      strings constitute the argument list available to the new process image.
  96.      By convention, _a_r_g_v must have at least one member, and it should point to
  97.      a string that is the same as _p_a_t_h (or its last component).  _a_r_g_v is
  98.      terminated by a null pointer.
  99.  
  100.      _e_n_v_p is an array of character pointers to null-terminated strings.  These
  101.      strings constitute the environment for the new process image.  _e_n_v_p is
  102.      terminated by a null pointer.  For _eeee_xxxx_eeee_cccc_llll, _eeee_xxxx_eeee_cccc_vvvv, _eeee_xxxx_eeee_cccc_vvvv_pppp, and _eeee_xxxx_eeee_cccc_llll_pppp, the
  103.      C run-time start-off routine places a pointer to the environment of the
  104.      calling process in the global object _eeee_xxxx_tttt_eeee_rrrr_nnnn _cccc_hhhh_aaaa_rrrr _****_****______eeee_nnnn_vvvv_iiii_rrrr_oooo_nnnn, and it is
  105.      used to pass the environment of the calling process to the new process.
  106.      Unless compilation is done in a pure ANSI environment (see _cccc_cccc(1)), the
  107.      global variable ____eeeennnnvvvviiiirrrroooonnnn is aliased to the well-known (but non-ANSI-
  108.      compliant) name eeeennnnvvvviiiirrrroooonnnn.
  109.  
  110.      File descriptors open in the calling process remain open in the new
  111.      process, except for those whose close-on-exec flag is set; [see
  112.      _ffff_cccc_nnnn_tttt_llll(2)].  For those file descriptors that remain open, the file pointer
  113.      is unchanged.
  114.  
  115.      Signals that are being caught by the calling process are set to the
  116.      default disposition in the new process image [see _ssss_iiii_gggg_nnnn_aaaa_llll(2)].  Otherwise,
  117.      the new process image inherits the signal dispositions of the calling
  118.      process.
  119.  
  120.      For signals set by _ssss_iiii_gggg_ssss_eeee_tttt(2), _ssss_iiii_gggg_aaaa_cccc_tttt_iiii_oooo_nnnn(2), or _ssss_iiii_gggg_vvvv_eeee_cccc(3B), _eeee_xxxx_eeee_cccc will
  121.      ensure that the new process has the same system signal action for each
  122.      signal type whose action is SIG_DFL, SIG_IGN, or SIG_HOLD as the calling
  123.      process.  However, if the action is to catch the signal, then the action
  124.      will be reset to SIG_DFL.  All signal masks associated with handlers are
  125.      cleared.
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. eeeexxxxeeeecccc((((2222))))                                                                eeeexxxxeeeecccc((((2222))))
  137.  
  138.  
  139.  
  140.      If the file resides on a file system which has been mounted with the
  141.      _n_o_s_u_i_d option [see _ffff_ssss_tttt_aaaa_bbbb(4)] then the effective user ID, the effective
  142.      group ID and the current capability set [see _cccc_aaaa_pppp_aaaa_bbbb_iiii_llll_iiii_tttt_iiii_eeee_ssss(4)] will remain
  143.      unchanged.  Otherwise, if the set-user-ID (SUID) mode bit of the new
  144.      process file is set [see _cccc_hhhh_mmmm_oooo_dddd(2)], _eeee_xxxx_eeee_cccc sets the effective user ID of
  145.      the new process to the owner ID of the new process file.  Similarly, if
  146.      the set-group-ID (SGID) mode bit of the new process file is set, the
  147.      effective group ID of the new process is set to the group ID of the new
  148.      process file.  And finally, if attributes for the file are accessible
  149.      [see _aaaa_tttt_tttt_rrrr______gggg_eeee_tttt(2)] and the _SSSS_GGGG_IIII______CCCC_AAAA_PPPP______FFFF_IIII_LLLL_EEEE attribute is attached to the file
  150.      (SCAP), then this is used to change the process' capabilities (see
  151.      _cccc_aaaa_pppp_aaaa_bbbb_iiii_llll_iiii_tttt_iiii_eeee_ssss(4)).
  152.  
  153.      The real user ID, real group ID, and supplementary group IDs of the new
  154.      process remain the same as those of the calling process.
  155.  
  156.      The saved user and group IDs of the new process are set to the effective
  157.      user and group IDs of the calling process.
  158.  
  159.      If the effective user-ID is _0000, the set-user-ID (SUID) and set-group-ID
  160.      (SGID) file mode bits and any capabilities attached to the file (SCAP)
  161.      will be honored when the process is being controlled by _pppp_tttt_rrrr_aaaa_cccc_eeee.
  162.  
  163.      When an image with set-user-ID (SUID), set-group-ID (SGID) or attached
  164.      capabilities (SCAP) is executed it is dangerous from a security
  165.      standpoint to respect certain environment variables which may allow
  166.      arbitrary code to be linked into the new process image.  Examples include
  167.      _rrrr_llll_dddd's ______RRRR_LLLL_DDDD_****______LLLL_IIII_SSSS_TTTT and _LLLL_DDDD______LLLL_IIII_BBBB_RRRR_AAAA_RRRR_YYYY_****______PPPP_AAAA_TTTT_HHHH environment variables and the Image
  168.      Format Library's _IIII_FFFF_LLLL______DDDD_AAAA_TTTT_AAAA_BBBB_AAAA_SSSS_EEEE environment variable (see _rrrr_llll_dddd(1) and
  169.      _iiii_ffff_llll(1)), and _cccc_aaaa_tttt_oooo_pppp_eeee_nnnn's _NNNN_LLLL_SSSS_PPPP_AAAA_TTTT_HHHH environment variable, which allows user
  170.      control of message formatting (see _cccc_aaaa_tttt_oooo_pppp_eeee_nnnn(3C)).  As a result, these
  171.      environment variables are ignored when such an image is executed.  The
  172.      semantics for determining when it is dangerous to respect such
  173.      environment variables are: the real and effective user IDs are different,
  174.      or the real and effective group IDs are different or if a process has _a_n_y
  175.      effective or permitted capabilities.
  176.  
  177.      Allowing such environment variables to be used in these circumstances is
  178.      dangerous because an unprivileged user may execute an image which has
  179.      privileges associated with it.  Allowing the user to specify arbitrary
  180.      code to be linked into the new privileged process image would give the
  181.      user the ability to circumvent the security policies instituted by the
  182.      system administrator.  For instance, if an arbitrary dynamic linked
  183.      object (DSO) were linked in which provided a resolution for the symbol
  184.      _ssss_tttt_rrrr_cccc_pppp_yyyy, the priviledge process could call the _ssss_tttt_rrrr_cccc_pppp_yyyy() function thinking
  185.      that it was making a ``safe'' call to a standard library routine.
  186.  
  187.      Because of the above security restrictions, a dynamic executable with
  188.      attached permissions (SUID, SGID, and/or SCAP) will not be able to use
  189.      the _LLLL_DDDD______LLLL_IIII_BBBB_RRRR_AAAA_RRRR_YYYY_****______PPPP_AAAA_TTTT_HHHH environment variables to find dynamic shared objects
  190.      (DSO's) in non-standard library locations.  Instead, the executable must
  191.      either explicitly specify the locations of the DSO's it wants to load in
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. eeeexxxxeeeecccc((((2222))))                                                                eeeexxxxeeeecccc((((2222))))
  203.  
  204.  
  205.  
  206.      its _dddd_llll_oooo_pppp_eeee_nnnn(3) calls or must have an _rrrr_pppp_aaaa_tttt_hhhh embedded within it which
  207.      specifies the non-standard library locations that need to be searched for
  208.      its DSO's (see the documentation for the _----_rrrr_pppp_aaaa_tttt_hhhh option in _llll_dddd(1)).
  209.  
  210.      Set-user-ID (SUID), set-group-ID (SGID) interpreter files and those with
  211.      attached capabilities (SCAP) are handled in a special manner.  If
  212.      execution of an interpreter file will change either the user orgroup ID
  213.      or the file has attached capabilities, IRIX will open the interpreter
  214.      file for reading (subject to the read permissions of the interpreter file
  215.      and the user and group ID of the new process).  A pathname corresponding
  216.      to the interpreter file descriptor will be substituted for the pathname
  217.      of the interpreter file in the argument list passed to the intepreter.
  218.      This pathname will be of the form /_d_e_v/_f_d/_N where _N is the number of the
  219.      interpreter file descriptor.
  220.  
  221.      The shared memory segments attached to the calling process will not be
  222.      attached to the new process [see _ssss_hhhh_mmmm_oooo_pppp(2)].
  223.  
  224.      If the process is a member of a share group, it is removed from that
  225.      share group [see _ssss_pppp_rrrr_oooo_cccc(2)].
  226.  
  227.      Profiling is disabled for the new process; see _pppp_rrrr_oooo_ffff_iiii_llll(2).
  228.  
  229.      Ability to access graphics is disabled.
  230.  
  231.      The new process also inherits the following attributes from the calling
  232.      process:
  233.  
  234.           nice value [see _nnnn_iiii_cccc_eeee(2)]
  235.           process ID
  236.           parent process ID
  237.           process group ID
  238.           real user and group IDs
  239.           supplementary groups IDs [see _gggg_eeee_tttt_gggg_rrrr_oooo_uuuu_pppp_ssss(2)]
  240.           _ssss_eeee_mmmm_aaaa_dddd_jjjj values [see _ssss_eeee_mmmm_oooo_pppp(2)]
  241.           session ID [see _eeee_xxxx_iiii_tttt(2) and _ssss_iiii_gggg_nnnn_aaaa_llll(2)]
  242.           trace flag [see _pppp_tttt_rrrr_aaaa_cccc_eeee(2) request 0]
  243.           time left until an alarm clock signal [see _aaaa_llll_aaaa_rrrr_mmmm(2)]
  244.           interval timers [see _gggg_eeee_tttt_iiii_tttt_iiii_mmmm_eeee_rrrr(2)]
  245.           current working directory
  246.           root directory
  247.           file mode creation mask [see _uuuu_mmmm_aaaa_ssss_kkkk(2)]
  248.           file size limit [see _uuuu_llll_iiii_mmmm_iiii_tttt(2)]
  249.           resource limits [see _gggg_eeee_tttt_rrrr_llll_iiii_mmmm_iiii_tttt(2)]
  250.           _uuuu_tttt_iiii_mmmm_eeee, _ssss_tttt_iiii_mmmm_eeee, _cccc_uuuu_tttt_iiii_mmmm_eeee, and _cccc_ssss_tttt_iiii_mmmm_eeee [see _tttt_iiii_mmmm_eeee_ssss(2)]
  251.           file-locks [see _ffff_cccc_nnnn_tttt_llll(2) and _llll_oooo_cccc_kkkk_ffff(3C)]
  252.           controlling terminal
  253.           process signal mask [see _ssss_iiii_gggg_pppp_rrrr_oooo_cccc_mmmm_aaaa_ssss_kkkk(2)]
  254.           pending signals [see _ssss_iiii_gggg_pppp_eeee_nnnn_dddd_iiii_nnnn_gggg(2)]
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. eeeexxxxeeeecccc((((2222))))                                                                eeeexxxxeeeecccc((((2222))))
  269.  
  270.  
  271.  
  272.      Upon successful completion, _eeee_xxxx_eeee_cccc marks for update the _ssss_tttt______aaaa_tttt_iiii_mmmm_eeee field of
  273.      the file.  Should the _eeee_xxxx_eeee_cccc succeed, the process image file is considered
  274.      to have been _oooo_pppp_eeee_nnnn_((((_))))-ed.  The corresponding _cccc_llll_oooo_ssss_eeee_((((_)))) is considered to occur
  275.      at a time after this open, but before process termination or successful
  276.      completion of a subsequent call to _eeee_xxxx_eeee_cccc.
  277.  
  278.      _eeee_xxxx_eeee_cccc will fail and return to the calling process if one or more of the
  279.      following are true:
  280.  
  281.      _EEEE_AAAA_CCCC_CCCC_EEEE_SSSS        Search permission is denied for a directory listed in the
  282.                    new process file's path prefix.
  283.  
  284.      _EEEE_AAAA_CCCC_CCCC_EEEE_SSSS        The new process file is not an ordinary file.
  285.  
  286.      _EEEE_AAAA_CCCC_CCCC_EEEE_SSSS        Execute permission on the new process file is denied.
  287.  
  288.      _EEEE_2222_BBBB_IIII_GGGG         The number of bytes in the new process's argument list is
  289.                    greater than the system-imposed limit {_A_R_G__M_A_X} [see
  290.                    _ssss_yyyy_ssss_cccc_oooo_nnnn_ffff(2), _iiii_nnnn_tttt_rrrr_oooo(2), and _llll_iiii_mmmm_iiii_tttt_ssss_...._hhhh].  The argument list
  291.                    limit is the sum of the size of the argument list plus the
  292.                    size of the environment's exported shell variables.
  293.  
  294.      _EEEE_2222_BBBB_IIII_GGGG         The number of bytes in the first line of an interpreter
  295.                    file is greater than 256 bytes.
  296.  
  297.      _EEEE_AAAA_GGGG_AAAA_IIII_NNNN        Not enough memory.
  298.  
  299.      _EEEE_FFFF_AAAA_UUUU_LLLL_TTTT        An argument points to an illegal address.
  300.  
  301.      _EEEE_LLLL_IIII_BBBB_AAAA_CCCC_CCCC       Required shared library does not have execute permission.
  302.  
  303.      _EEEE_LLLL_IIII_BBBB_EEEE_XXXX_EEEE_CCCC      Trying to _eeee_xxxx_eeee_cccc(2) a shared library directly.
  304.  
  305.      _EEEE_LLLL_IIII_BBBB_MMMM_AAAA_XXXX       The required number of shared libraries exceeds the system
  306.                    imposed maximum {_S_H_L_I_B__M_A_X} [see _iiii_nnnn_tttt_rrrr_oooo(2)].
  307.  
  308.      _EEEE_LLLL_OOOO_OOOO_PPPP         Too many symbolic links were encountered in translating
  309.                    _p_a_t_h or _f_i_l_e.
  310.  
  311.      _EEEE_NNNN_AAAA_MMMM_EEEE_TTTT_OOOO_OOOO_LLLL_OOOO_NNNN_GGGG  The length of the _f_i_l_e or _p_a_t_h argument exceeds {_PPPP_AAAA_TTTT_HHHH______MMMM_AAAA_XXXX},
  312.                    or the length of a _f_i_l_e or _p_a_t_h component exceeds
  313.                    {_NNNN_AAAA_MMMM_EEEE______MMMM_AAAA_XXXX} while ______PPPP_OOOO_SSSS_IIII_XXXX______NNNN_OOOO______TTTT_RRRR_UUUU_NNNN_CCCC is in effect.
  314.  
  315.      _EEEE_NNNN_OOOO_EEEE_NNNN_TTTT        One or more components of the new process path name of the
  316.                    file do not exist or is a null pathname.
  317.  
  318.      _EEEE_NNNN_OOOO_TTTT_DDDD_IIII_RRRR       A component of the new process path of the file prefix is
  319.                    not a directory.
  320.  
  321.      _EEEE_NNNN_OOOO_EEEE_XXXX_EEEE_CCCC       The _eeee_xxxx_eeee_cccc is not an _eeee_xxxx_eeee_cccc_llll_pppp or _eeee_xxxx_eeee_cccc_vvvv_pppp, and the new process
  322.                    file has the appropriate access permission but an invalid
  323.                    magic number in its header.
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. eeeexxxxeeeecccc((((2222))))                                                                eeeexxxxeeeecccc((((2222))))
  335.  
  336.  
  337.  
  338.      _EEEE_NNNN_OOOO_EEEE_XXXX_EEEE_CCCC       The executable object file has badly formed header
  339.                    information.
  340.  
  341.      _EEEE_NNNN_OOOO_EEEE_XXXX_EEEE_CCCC       The requested virtual addresses are not available.
  342.  
  343.      _EEEE_NNNN_OOOO_MMMM_EEEE_MMMM        The new process requires more virtual space than is allowed
  344.                    either by the system-imposed maximum or the process imposed
  345.                    maximum {_P_R_O_C_S_I_Z_E__M_A_X} [see _gggg_eeee_tttt_rrrr_llll_iiii_mmmm_iiii_tttt(2) and _iiii_nnnn_tttt_rrrr_oooo(2)].
  346.  
  347.      _EEEE_PPPP_EEEE_RRRR_MMMM         A non-superuser attempts to execute a setuid or setgid
  348.                    shell script with a uid or gid which is different than the
  349.                    user's effective uid/gid, and the configured value for
  350.                    _n_o_s_u_i_d_s_h_e_l_l_s is non-zero (the default) [see _iiii_nnnn_tttt_rrrr_oooo(2) and
  351.                    _llll_bbbb_oooo_oooo_tttt(1M)].
  352.  
  353. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  354.      _pppp_ssss(1), _ssss_hhhh(1), _llll_bbbb_oooo_oooo_tttt(1M), _iiii_nnnn_tttt_rrrr_oooo(2), _aaaa_llll_aaaa_rrrr_mmmm(2), _eeee_xxxx_iiii_tttt(2), _ffff_cccc_nnnn_tttt_llll(2), _ffff_oooo_rrrr_kkkk(2),
  355.      _gggg_eeee_tttt_gggg_rrrr_oooo_uuuu_pppp_ssss(2), _gggg_eeee_tttt_rrrr_llll_iiii_mmmm_iiii_tttt(2), _nnnn_iiii_cccc_eeee(2), _pppp_cccc_rrrr_eeee_aaaa_tttt_eeee(2), _pppp_tttt_rrrr_aaaa_cccc_eeee(2), _ssss_eeee_mmmm_oooo_pppp(2),
  356.      _ssss_iiii_gggg_aaaa_cccc_tttt_iiii_oooo_nnnn(2), _ssss_iiii_gggg_nnnn_aaaa_llll(2), _ssss_iiii_gggg_pppp_eeee_nnnn_dddd_iiii_nnnn_gggg(2), _ssss_iiii_gggg_pppp_rrrr_oooo_cccc_mmmm_aaaa_ssss_kkkk(2), _ssss_iiii_gggg_ssss_eeee_tttt(2),
  357.      _ssss_pppp_rrrr_oooo_cccc(2), _ssss_yyyy_ssss_cccc_oooo_nnnn_ffff(2), _tttt_iiii_mmmm_eeee_ssss(2), _uuuu_llll_iiii_mmmm_iiii_tttt(2), _uuuu_mmmm_aaaa_ssss_kkkk(2), _llll_oooo_cccc_kkkk_ffff(3C),
  358.      _ssss_iiii_gggg_nnnn_aaaa_llll(3B), _ssss_iiii_gggg_vvvv_eeee_cccc(3B), _ssss_yyyy_ssss_tttt_eeee_mmmm(3S), _aaaa_...._oooo_uuuu_tttt(4), _pppp_rrrr_oooo_cccc(4), _eeee_nnnn_vvvv_iiii_rrrr_oooo_nnnn(5)
  359.  
  360. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  361.      If _eeee_xxxx_eeee_cccc returns to the calling process, an error has occurred; the return
  362.      value is -1 and _eeee_rrrr_rrrr_nnnn_oooo is set to indicate the error.
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.